﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Banco;
using ObjetoNegocio;

namespace RegraNegocio
{
    public class RegraNegocioAlgoritmo
    {
        public void Cadastrar(Algoritmo algoritmo)
        {
            var algoritmoBD = new AlgoritmoBD();
            algoritmoBD.Inserir(algoritmo);
        }

        public Algoritmo Pesquisar(Algoritmo algoritmo)
        {
            var algoritmoBD = new AlgoritmoBD();
            return algoritmoBD.Pesquisar(algoritmo);
        }

        public List<Algoritmo> ListarPorFiltro(Algoritmo algoritmo)
        {
            var algoritmoBD = new AlgoritmoBD();
            return algoritmoBD.ListarPorFiltro(algoritmo);
        }

        public List<Algoritmo> Listar()
        {
            var algoritmoBD = new AlgoritmoBD();
            return algoritmoBD.Listar();
        }

        public List<Algoritmo> ListarTop5PorBusca(Busca busca)
        {
            //var algoritmoBD = new AlgoritmoBD();
            //var algoritmos = algoritmoBD.ListarTop5PorBusca(busca);

            //if(algoritmos.Count ==0)
            //{
            //    algoritmos = algoritmoBD.ListarPorAvaliacao(true);
            //}

            //return algoritmos;
            return ListarTopNPorBusca(busca, 5);
        }


        public List<Algoritmo> ListarTopNPorBusca(Busca busca, int n)
        {
            var algoritmoBD = new AlgoritmoBD();
            var algoritmos = algoritmoBD.Listar();

            var _algoritmos = from algoritimo in algoritmos
                              where busca.MesmoParametros(algoritimo)
                              select algoritimo;


            return _algoritmos.ToList();
        }
    }
}
